feat: customer wallets, paycodes, and envelope fix#18
Merged
Merged
Conversation
Implements CreateWalletAsync, GetWalletsAsync, GetCustomerWalletBalanceAsync, and GetWalletTransactionsAsync on IMonnifyDisbursementsClient. Sandbox testing revealed the balance endpoint uses accountNumber (not walletReference as our docs show). Includes 15 unit tests and one sandbox integration test covering list, balance, and transactions.
Move [Unreleased] to the top (Keep a Changelog spec), add mandates and release.yml fixes to [Unreleased], and expand the [0.2.0] entry with the card-charging and release-automation details that were missing.
… to Unreleased Pulls the auto-generated 0.3.0–0.5.0 sections from release-please--branches--main, removes the stale buried [Unreleased] block (now covered by those sections), moves [Unreleased] to the top with only the wallet feature that release-please hasn't picked up yet. Reverts version.json to 0.1-alpha since release-please owns versioning via .release-please-manifest.json.
Implements CreatePaycodeAsync, GetPaycodesAsync, GetPaycodeAsync, CancelPaycodeAsync, and GetUnmaskedPaycodeAsync on IMonnifyCollectionsClient. Sandbox testing surfaced two real discrepancies with the docs: - The paycode endpoints omit 'requestSuccessful' from responses entirely. Fixed by making MonnifyResponseEnvelope.RequestSuccessful nullable and updating the failure check in MonnifyHttpClientBase to treat an absent field + present body as a success, while still catching gateway errors (absent field + absent body) as failures. - Cancelled paycodes include an undocumented 'cancelDate' field; added as nullable to the Paycode model. CreatePaycodeAsync requires the paycode feature to be activated on the merchant account (contact sales@monnify.com); sandbox returns an error without it. The three read endpoints are sandbox-verified.
Rebases our [Unreleased] section on top of main's release-please-generated 0.5.0/0.4.0/0.3.0 entries and removes the stale buried [Unreleased] block that was causing the merge conflict.
…ormat error Nerdbank.GitVersioning 3.10.85's MSBuild task writes version variables to $GITHUB_ENV using the old single-line format, which newer GitHub Actions runners reject with "Invalid format '8'". Running dotnet/nbgv@master before the build step lets NBGV set those variables via the runner's own file-command API (heredoc format), so the MSBuild task sees they're already set and skips.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IMonnifyDisbursementsClient):CreateWalletAsync,GetWalletsAsync,GetCustomerWalletBalanceAsync,GetWalletTransactionsAsync. Sandbox revealed the balanceendpoint uses
accountNumber(notwalletReferenceas the docs say).IMonnifyCollectionsClient):CreatePaycodeAsync,GetPaycodesAsync,GetPaycodeAsync,CancelPaycodeAsync,GetUnmaskedPaycodeAsync. Sandbox revealed paycodeendpoints omit
requestSuccessfulfrom their responses — required an envelope fix (see below).MonnifyResponseEnvelope.RequestSuccessfulis nowbool?. An absent fieldgateway-level failure. Non-breaking internal change.
Test plan
dotnet format --verify-no-changescleandotnet build -c Releaseclean (0 warnings)CustomerWallets_AgainstRealSandbox— 21 wallets in sandboxPaycodeReadOperations_AgainstRealSandbox— 33 paycodes; authorize confirmed unmasked